<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
<title>Creating Dynamic Content - The Java EE 5 Tutorial</title>
<meta name="robots" content="index,follow">
<meta name="robots" content="index,follow">
<meta name="date" content="2008-10-01">
<link rel="stylesheet" type="text/css" href="css/default.css">
<link rel="stylesheet" type="text/css" href="css/ipg.css">
<link rel="stylesheet" type="text/css" href="css/j5eetutorial.css">
</head>

<body>

<table border="0" cellpadding="5" cellspacing="0" width="100%">
<tbody>
   <tr valign="top">
      <td><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
<p class="toc level1 tocsp"><a href="gexaf.html">Preface</a></p>
<p class="toc level1 tocsp"><a href="gfirp.html">Part&nbsp;I&nbsp;Introduction</a></p>
<p class="toc level2"><a href="bnaaw.html">1.&nbsp;&nbsp;Overview</a></p>
<p class="toc level2"><a href="gfiud.html">2.&nbsp;&nbsp;Using the Tutorial Examples</a></p>
<p class="toc level1 tocsp"><a href="bnadp.html">Part&nbsp;II&nbsp;The Web Tier</a></p>
<p class="toc level2"><a href="bnadr.html">3.&nbsp;&nbsp;Getting Started with Web Applications</a></p>
<p class="toc level2"><a href="bnafd.html">4.&nbsp;&nbsp;Java Servlet Technology</a></p>
<p class="toc level2"><a href="bnagx.html">5.&nbsp;&nbsp;JavaServer Pages Technology</a></p>
<p class="toc level3"><a href="bnagy.html">What Is a JSP Page?</a></p>
<p class="toc level4"><a href="bnagy.html#bnagz">A Simple JSP Page Example</a></p>
<p class="toc level3 tocsp"><a href="bnahb.html">The Example JSP Pages</a></p>
<p class="toc level3"><a href="bnahe.html">The Life Cycle of a JSP Page</a></p>
<p class="toc level4"><a href="bnahe.html#bnahf">Translation and Compilation</a></p>
<p class="toc level4"><a href="bnahe.html#bnahg">Execution</a></p>
<p class="toc level5"><a href="bnahe.html#bnahh">Buffering</a></p>
<p class="toc level5"><a href="bnahe.html#bnahi">Handling JSP Page Errors</a></p>
<p class="toc level3 tocsp"><a href="bnahj.html">Creating Static Content</a></p>
<p class="toc level4"><a href="bnahj.html#bnahk">Response and Page Encoding</a></p>
<div class="onpage">
<p class="toc level3 tocsp"><a href="">Creating Dynamic Content</a></p>
<p class="toc level4"><a href="#bnahm">Using Objects within JSP Pages</a></p>
<p class="toc level5"><a href="#bnahn">Using Implicit Objects</a></p>
<p class="toc level5"><a href="#bnaho">Using Application-Specific Objects</a></p>
<p class="toc level5"><a href="#bnahp">Using Shared Objects</a></p>
</div>
<p class="toc level3 tocsp"><a href="bnahq.html">Unified Expression Language</a></p>
<p class="toc level4"><a href="bnahq.html#bnahr">Immediate and Deferred Evaluation Syntax</a></p>
<p class="toc level5"><a href="bnahq.html#bnahs">Immediate Evaluation</a></p>
<p class="toc level5"><a href="bnahq.html#bnaht">Deferred Evaluation</a></p>
<p class="toc level4 tocsp"><a href="bnahq.html#bnahu">Value and Method Expressions</a></p>
<p class="toc level5"><a href="bnahq.html#bnahv">Value Expressions</a></p>
<p class="toc level5"><a href="bnahq.html#bnahz">Method Expressions</a></p>
<p class="toc level4 tocsp"><a href="bnahq.html#bnaia">Defining a Tag Attribute Type</a></p>
<p class="toc level4"><a href="bnahq.html#bnaic">Deactivating Expression Evaluation</a></p>
<p class="toc level4"><a href="bnahq.html#bnaid">Literal Expressions</a></p>
<p class="toc level4"><a href="bnahq.html#bnaif">Resolving Expressions</a></p>
<p class="toc level5"><a href="bnahq.html#bnaig">Process of Expression Evaluation</a></p>
<p class="toc level5"><a href="bnahq.html#bnaih">EL Resolvers</a></p>
<p class="toc level4 tocsp"><a href="bnahq.html#bnaij">Implicit Objects</a></p>
<p class="toc level4"><a href="bnahq.html#bnaik">Operators</a></p>
<p class="toc level4"><a href="bnahq.html#bnail">Reserved Words</a></p>
<p class="toc level4"><a href="bnahq.html#bnaim">Examples of EL Expressions</a></p>
<p class="toc level4"><a href="bnahq.html#bnaio">Functions</a></p>
<p class="toc level5"><a href="bnahq.html#bnaip">Using Functions</a></p>
<p class="toc level5"><a href="bnahq.html#bnaiq">Defining Functions</a></p>
<p class="toc level3 tocsp"><a href="bnair.html">JavaBeans Components</a></p>
<p class="toc level4"><a href="bnair.html#bnais">JavaBeans Component Design Conventions</a></p>
<p class="toc level4"><a href="bnair.html#bnait">Creating and Using a JavaBeans Component</a></p>
<p class="toc level4"><a href="bnair.html#bnaiu">Setting JavaBeans Component Properties</a></p>
<p class="toc level4"><a href="bnair.html#bnaix">Retrieving JavaBeans Component Properties</a></p>
<p class="toc level3 tocsp"><a href="bnaiy.html">Using Custom Tags</a></p>
<p class="toc level4"><a href="bnaiy.html#bnaiz">Declaring Tag Libraries</a></p>
<p class="toc level4"><a href="bnaiy.html#bnaja">Including the Tag Library Implementation</a></p>
<p class="toc level3 tocsp"><a href="bnajb.html">Reusing Content in JSP Pages</a></p>
<p class="toc level3"><a href="bnajc.html">Transferring Control to Another Web Component</a></p>
<p class="toc level4"><a href="bnajc.html#bnajd"><tt>jsp:param</tt> Element</a></p>
<p class="toc level3 tocsp"><a href="bnaje.html">Including an Applet</a></p>
<p class="toc level3"><a href="bnajg.html">Setting Properties for Groups of JSP Pages</a></p>
<p class="toc level4"><a href="bnajg.html#bnajh">Deactivating EL Expression Evaluation</a></p>
<p class="toc level5"><a href="bnajg.html#bnajk">Declaring Page Encodings</a></p>
<p class="toc level5"><a href="bnajg.html#bnajl">Defining Implicit Includes</a></p>
<p class="toc level5"><a href="bnajg.html#bnajm">Eliminating Extra White Space</a></p>
<p class="toc level3 tocsp"><a href="bnajn.html">Further Information about JavaServer Pages Technology</a></p>
<p class="toc level2 tocsp"><a href="bnajo.html">6.&nbsp;&nbsp;JavaServer Pages Documents</a></p>
<p class="toc level2"><a href="bnakc.html">7.&nbsp;&nbsp;JavaServer Pages Standard Tag Library</a></p>
<p class="toc level2"><a href="bnalj.html">8.&nbsp;&nbsp;Custom Tags in JSP Pages</a></p>
<p class="toc level2"><a href="bnaon.html">9.&nbsp;&nbsp;Scripting in JSP Pages</a></p>
<p class="toc level2"><a href="bnaph.html">10.&nbsp;&nbsp;JavaServer Faces Technology</a></p>
<p class="toc level2"><a href="bnaqz.html">11.&nbsp;&nbsp;Using JavaServer Faces Technology in JSP Pages</a></p>
<p class="toc level2"><a href="bnatx.html">12.&nbsp;&nbsp;Developing with JavaServer Faces Technology</a></p>
<p class="toc level2"><a href="bnavg.html">13.&nbsp;&nbsp;Creating Custom UI Components</a></p>
<p class="toc level2"><a href="bnawo.html">14.&nbsp;&nbsp;Configuring JavaServer Faces Applications</a></p>
<p class="toc level2"><a href="bnaxu.html">15.&nbsp;&nbsp;Internationalizing and Localizing Web Applications</a></p>
<p class="toc level1 tocsp"><a href="bnayk.html">Part&nbsp;III&nbsp;Web Services</a></p>
<p class="toc level2"><a href="bnayl.html">16.&nbsp;&nbsp;Building Web Services with JAX-WS</a></p>
<p class="toc level2"><a href="bnazf.html">17.&nbsp;&nbsp;Binding between XML Schema and Java Classes</a></p>
<p class="toc level2"><a href="bnbdv.html">18.&nbsp;&nbsp;Streaming API for XML</a></p>
<p class="toc level2"><a href="bnbhf.html">19.&nbsp;&nbsp;SOAP with Attachments API for Java</a></p>
<p class="toc level1 tocsp"><a href="bnblr.html">Part&nbsp;IV&nbsp;Enterprise Beans</a></p>
<p class="toc level2"><a href="bnbls.html">20.&nbsp;&nbsp;Enterprise Beans</a></p>
<p class="toc level2"><a href="bnbnb.html">21.&nbsp;&nbsp;Getting Started with Enterprise Beans</a></p>
<p class="toc level2"><a href="bnboc.html">22.&nbsp;&nbsp;Session Bean Examples</a></p>
<p class="toc level2"><a href="bnbpk.html">23.&nbsp;&nbsp;A Message-Driven Bean Example</a></p>
<p class="toc level1 tocsp"><a href="bnbpy.html">Part&nbsp;V&nbsp;Persistence</a></p>
<p class="toc level2"><a href="bnbpz.html">24.&nbsp;&nbsp;Introduction to the Java Persistence API</a></p>
<p class="toc level2"><a href="bnbrl.html">25.&nbsp;&nbsp;Persistence in the Web Tier</a></p>
<p class="toc level2"><a href="bnbrs.html">26.&nbsp;&nbsp;Persistence in the EJB Tier</a></p>
<p class="toc level2"><a href="bnbtg.html">27.&nbsp;&nbsp;The Java Persistence Query Language</a></p>
<p class="toc level1 tocsp"><a href="bnbwi.html">Part&nbsp;VI&nbsp;Services</a></p>
<p class="toc level2"><a href="bnbwj.html">28.&nbsp;&nbsp;Introduction to Security in the Java EE Platform</a></p>
<p class="toc level2"><a href="bnbyk.html">29.&nbsp;&nbsp;Securing Java EE Applications</a></p>
<p class="toc level2"><a href="bncas.html">30.&nbsp;&nbsp;Securing Web Applications</a></p>
<p class="toc level2"><a href="bncdq.html">31.&nbsp;&nbsp;The Java Message Service API</a></p>
<p class="toc level2"><a href="bncgv.html">32.&nbsp;&nbsp;Java EE Examples Using the JMS API</a></p>
<p class="toc level2"><a href="bncih.html">33.&nbsp;&nbsp;Transactions</a></p>
<p class="toc level2"><a href="bncjh.html">34.&nbsp;&nbsp;Resource Connections</a></p>
<p class="toc level2"><a href="bncjx.html">35.&nbsp;&nbsp;Connector Architecture</a></p>
<p class="toc level1 tocsp"><a href="bnckn.html">Part&nbsp;VII&nbsp;Case Studies</a></p>
<p class="toc level2"><a href="bncko.html">36.&nbsp;&nbsp;The Coffee Break Application</a></p>
<p class="toc level2"><a href="bnclz.html">37.&nbsp;&nbsp;The Duke's Bank Application</a></p>
<p class="toc level1 tocsp"><a href="gexbq.html">Part&nbsp;VIII&nbsp;Appendixes</a></p>
<p class="toc level2"><a href="bncno.html">A.&nbsp;&nbsp;Java Encoding Schemes</a></p>
<p class="toc level2"><a href="bncnq.html">B.&nbsp;&nbsp;Preparation for Java EE Certification Exams</a></p>
<p class="toc level2"><a href="bncnt.html">C.&nbsp;&nbsp;About the Authors</a></p>
<p class="toc level1 tocsp"><a href="idx-1.html">Index</a></p>
</td>
      <td width="10px">&nbsp;</td>
      <td width="705px">
         <div class="header">
             <div class="header-links-top">
                 <a href="http://java.sun.com">java.sun.com</a> |
                 <a href="http://docs.sun.com/">docs.sun.com</a><br>
             </div> 
             <img src="graphics/tutorialBanner.gif" width="704" height="120" alt="The Java&trade; EE 5 Tutorial"/>
             <div class="header-links">
	         <a href="index.html">Home</a> |
                 <a href="http://java.sun.com/javaee/5/docs/tutorial/information/download.html">Download</a> |
                 <a href="http://java.sun.com/javaee/5/docs/tutorial/doc/JavaEETutorial.pdf">PDF</a> |
                 <a href="http://java.sun.com/javaee/5/docs/api/index.html">API</a> |
                 <a href="http://java.sun.com/javaee/5/docs/tutorial/information/faq.html">FAQ</a> |
                 <a href="http://java.sun.com/javaee/5/docs/tutorial/information/search.html">Search</a> |
                 <a href="http://java.sun.com/javaee/5/docs/tutorial/information/sendusmail.html">Feedback</a> |
                 <a href="http://java.sun.com/javaee/5/docs/tutorial/information/history.html">History</a>
             </div>
             <div class="navigation">
                 <a href="bnahj.html"><img style="padding-right: 3px" src="graphics/leftButton.gif" border="0"></a>
                 <a href="sjsaseej2eet.html"><img style="padding-right: 3px" src="graphics/upButton.gif" border="0"></a>
                 <a href="bnahq.html"><img style="padding-left: 3px" src="graphics/rightButton.gif" border="0"></a>
             </div>
         </div>

	 <div class="maincontent">      	 
             

<a name="bnahl"></a><h3>Creating Dynamic Content</h3>
<p><a name="indexterm-334"></a>You create dynamic content by accessing Java programming language object properties.</p>

<a name="bnahm"></a><h4>Using Objects within JSP Pages</h4>
<p>You can access a variety of objects, including enterprise beans and JavaBeans components,
within a JSP page. JSP technology automatically makes some objects available, and you
can also create and access application-specific objects.</p>

<a name="bnahn"></a><h5>Using Implicit Objects</h5>
<p><a name="indexterm-335"></a><b>Implicit objects</b> are created by the web container and contain information related to a
particular request, page, session, or application. Many of the objects are defined by
the Java servlet technology underlying JSP technology and are discussed at length in
<a href="bnafd.html">Chapter&nbsp;4, Java Servlet Technology</a>. The section <a href="bnahq.html#bnaij">Implicit Objects</a> explains how you access implicit objects using the JSP
expression language.</p>

<a name="bnaho"></a><h5>Using Application-Specific Objects</h5>
<p><a name="indexterm-336"></a>When possible, application behavior should be encapsulated in objects so that page designers
can focus on presentation issues. Objects can be created by developers who are
proficient in the Java programming language and in accessing databases and other services.
The main way to create and use application-specific objects within a JSP page
is to use JSP standard tags (discussed in <a href="bnair.html">JavaBeans Components</a>) to create JavaBeans components
and set their properties, and EL expressions to access their properties. You can
also access JavaBeans components and other objects in scripting elements, which are described
in <a href="bnaon.html">Chapter&nbsp;9, Scripting in JSP Pages</a>.</p>

<a name="bnahp"></a><h5>Using Shared Objects</h5>
<p><a name="indexterm-337"></a>The conditions affecting concurrent access to shared objects (described in <a href="bnafo.html#bnafs">Controlling Concurrent Access to Shared Resources</a>) apply to objects
accessed from JSP pages that run as multithreaded servlets. You can use the
following <tt>page</tt> directive to indicate how a web container should dispatch multiple client
requests:</p><pre>&lt;%@ page isThreadSafe="true|false" %></pre><p><a name="indexterm-338"></a>When the <tt>isThreadSafe</tt> attribute is set to <tt>true</tt>, the web container can
choose to dispatch multiple concurrent client requests to the JSP page. This is
the <b>default</b> setting. If using <tt>true</tt>, you must ensure that you properly synchronize access
to any shared objects defined at the page level. This includes objects created
within declarations, JavaBeans components with page scope, and attributes of the page context
object (see <a href="bnahq.html#bnaij">Implicit Objects</a>).</p><p>If <tt>isThreadSafe</tt> is set to <tt>false</tt>, requests are dispatched one at a time
in the order they were received, and access to page-level objects does not
have to be controlled. However, you still must ensure that access is properly
synchronized to attributes of the <tt>application</tt> or <tt>session</tt> scope objects and to
JavaBeans components with application or session scope. Furthermore, it is not recommended to set
<tt>isThreadSafe</tt> to <tt>false</tt>. The JSP page&rsquo;s generated servlet will implement the <tt>javax.servlet.SingleThreadModel</tt> interface,
and because the Servlet 2.4 specification deprecates <tt>SingleThreadModel</tt>, the generated servlet will
contain deprecated code.</p>
         </div>
         <div class="navigation">
             <a href="bnahj.html"><img style="padding-right: 3px" src="graphics/leftButton.gif" border="0"></a>
             <a href="sjsaseej2eet.html"><img style="padding-right: 3px" src="graphics/upButton.gif" border="0"></a>
             <a href="bnahq.html"><img style="padding-left: 3px" src="graphics/rightButton.gif" border="0"></a>
         </div>

         <div class="copyright">
      	    <p>The material in The Java&trade; EE 5 Tutorial is <a href='docinfo.html'>copyright</a>-protected and may not be published in other works without express written permission from Sun Microsystems.</p>
      	 </div>

      </td>
   </tr>
</tbody>
</table>
</body>
</html>

